#ifndef __CK_FOLDER_DATA_SOURCE_H__
#define __CK_FOLDER_DATA_SOURCE_H__

#include "ckDataSource.h"
#include <string>

namespace ck
{
	class Folder;
	class EnumFolder;

	class ZCORE_API FolderDataSource : public DataSource
	{
	public:
		FolderDataSource();
		virtual ~FolderDataSource();

	public:
		virtual RESULTCODE	Open();
		virtual RESULTCODE	Close();
		virtual RESULTCODE	Find(DatasetProcessor* pProcessor, DatasetFilter* pFilter);

		virtual	data::EnumDataset*	GetDatasets(ckDataProductType type);
		virtual RESULTCODE	RemoveDataset(const char* szName);

	public:
	//	void		SetPath(const char* szPath);
		EnumFolder*	GetSubFolders();

	protected:
		void		Traverse(data::EnumDataset* pDatasets, const char* szRoot, ckDataProductType type);
		
	protected:
	//	std::string m_strPath;
		Folder*		m_pFolder;
	};

}

#endif //__CK_FOLDER_DATA_SOURCE_H__
